package com.mqr.wallet.vo;

/**
 * <B>主类名称：</B>CashWithdrawalVO<BR>
 * <B>概要说明：</B>提现请求参数对象<BR>
 *
 * @author mqr
 * @since 2023年2月21日 下午12:52:50
 */
public class CashWithdrawalVO {

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 钱包流水提现编号
     */
    private String cashNo;

    /**
     * 提现银行类型
     */
    private String cashBankType;

    /**
     * 金额
     */
    private Double amount;

    /**
     * 备注
     */
    private String remark;

    public CashWithdrawalVO(CashWithdrawalVO.Builder builder) {
        this.userId = builder.userId;
        this.cashNo = builder.cashNo;
        this.cashBankType = builder.cashBankType;
        this.amount = builder.amount;
        this.remark = builder.remark;
    }

    public CashWithdrawalVO() {
    }

    // 提供静态方法创建 Builder
    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private Integer userId;
        private String cashNo;
        private String cashBankType;
        private Double amount;
        private String remark;

        public CashWithdrawalVO.Builder userId(Integer userId) {
            this.userId = userId;
            return this;
        }

        public CashWithdrawalVO.Builder walletTransactionId(String cashNo) {
            this.cashNo = cashNo;
            return this;
        }

        public CashWithdrawalVO.Builder cashBankType(String cashBankType) {
            this.cashBankType = cashBankType;
            return this;
        }

        public CashWithdrawalVO.Builder message(Double amount) {
            this.amount = amount;
            return this;
        }

        public CashWithdrawalVO.Builder remark(String remark) {
            this.remark = remark;
            return this;
        }

        public CashWithdrawalVO build() {
            return new CashWithdrawalVO(this);
        }
    }

    public String getWalletTransactionId() {
        return cashNo;
    }

    public void setWalletTransactionId(String cashNo) {
        this.cashNo = cashNo;
    }

    public Double getAmount() {
        return amount;
    }

    public void setAmount(Double amount) {
        this.amount = amount;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCashBankType() {
        return cashBankType;
    }

    public void setCashBankType(String cashBankType) {
        this.cashBankType = cashBankType;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }
}
